//-----------------------------------------------------------------------
// <copyright file="Path.cs" company="tuliprules.org">
//     Copyright (c) 2010 tuplelister, tuliprules.org.
// </copyright>
// <summary>This is the Path class.</summary>
//-----------------------------------------------------------------------

namespace Tulip.Benchmarks.Manners.Model
{
    /// <summary>
    /// Miss Mannners - Path class
    /// </summary>
    public class Path
    {
        /// <summary>
        /// Number of seat for last seated guest.
        /// </summary>
        private readonly int seat;
        
        /// <summary>
        /// Path ID
        /// </summary>
        private int id;

        /// <summary>
        /// Name of last seated guest.
        /// </summary>
        private string name;

        /// <summary>
        /// Initializes a new instance of the <see cref="Path"/> class. 
        /// </summary>
        /// <param name="id">
        /// Path ID
        /// </param>
        /// <param name="name">
        /// Name of last seated guest.
        /// </param>
        /// <param name="seat">
        /// Number of seat for last seated guest.
        /// </param>
        public Path(int id, string name, int seat)
        {
            this.id = id;
            this.name = name;
            this.seat = seat;
        }

        /// <summary>
        /// Gets or sets the path ID
        /// </summary>
        public int Id
        {
            get
            {
                return this.id;
            }

            set
            {
                this.id = value;
            }
        }

        /// <summary>
        /// Gets or sets the name of last seated guest.
        /// </summary>
        public string Name
        {
            get
            {
                return this.name;
            }

            set
            {
                this.name = value;
            }
        }

        /// <summary>
        /// Gets the number of seat for last seated guest.
        /// </summary>
        public int Seat
        {
            get
            {
                return this.seat;
            }
        }

        /// <summary>
        /// Returns a text representation of the Path object.
        /// </summary>
        /// <returns>
        /// A text representation of the Path object.
        /// </returns>
        public override string ToString()
        {
            return string.Format("(path (id {0}) (name {1}) (seat {2}))", this.id, this.name, this.seat);
        }
    }
}
